#ifndef SPRITE_H
#define SPRITE_H

#include "Source/Core/Vector.h"
#include "Source/Texture.h"
#include <SDL.h>
#include <string>

class Sprite
{
public:
	Sprite();
	~Sprite();

	void LoadTexture(std::string filename);
	void UnloadTexture();
	void SaveTexture(std::string filename);

	
	void SetPosition(const Vector newPosition); // Position
	Vector GetPosition() const;

	void SetCurrentFrame(const int newFrame); // Current Frame
	int GetCurrentFrame() const ; 

	void SetMaxFrames(const int newMaxFrames); // Max Frames
	int GetMaxFrames() const;

	void SetIsInAnimation(const bool isInAnimation); //Animation
	bool GetIsInAnimation() const;

	const int GetWidth() const; //Size
	const int GetHeight() const; 

	const std::string GetFilename() const; //Filename


	void Draw();
	void Update();

	private:

	Texture*		m_texture;
	Vector			m_position;
	std::string		m_sFilename;
	std::string		m_sTexture;
	int				m_nCurrentFrame;
	int				m_nMaxFrames;
	bool			m_bIsVisible;
	bool			m_bTextureLoaded;
	bool			m_bIsInAnimation;
	SDL_Rect		m_sourceRect;
	int				m_nWidth;
	int				m_nHeight;
	
	
};

#endif //SPRITE_H